ওয়েব স্ক্র্যাপিং (Web Scraping) হল একটি প্রক্রিয়া যার মাধ্যমে ওয়েবসাইট থেকে স্বয়ংক্রিয়ভাবে তথ্য এক্সট্র্যাক্ট করা হয়। JSoup হল একটি জনপ্রিয় Java লাইব্রেরি যা HTML ডকুমেন্ট পার্সিং এবং ওয়েব স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়। প্রোডাক্ট ডেটা স্ক্র্যাপিং, বিশেষ করে ই-কমার্স ওয়েবসাইট থেকে প্রোডাক্ট সম্পর্কিত তথ্য সংগ্রহ করার জন্য JSoup খুবই কার্যকরী।
এখানে আমরা দেখব কিভাবে JSoup ব্যবহার করে ই-কমার্স ওয়েবসাইট থেকে প্রোডাক্ট ডেটা স্ক্র্যাপ করা যায়, যেমন প্রোডাক্টের নাম, দাম, বিবরণ, রেটিং ইত্যাদি।
JSoup দিয়ে প্রোডাক্ট ডেটা স্ক্র্যাপিং
ধরা যাক, আমাদের একটি ই-কমার্স ওয়েবসাইট থেকে প্রোডাক্টের নাম, দাম, বিবরণ এবং রেটিং স্ক্র্যাপ করতে হবে। প্রথমে JSoup দিয়ে HTML ডকুমেন্ট পার্স করবো এবং তারপর প্রোডাক্টের বিভিন্ন তথ্য এক্সট্র্যাক্ট করবো।
উদাহরণ: HTML থেকে প্রোডাক্ট ডেটা এক্সট্র্যাক্ট করা
ধরি, আমাদের HTML পেজের কাঠামো এরকম:
<html>
<head><title>Product List</title></head>
<body>
<div class="product">
<h2 class="product-name">Wireless Mouse</h2>
<span class="price">$25.99</span>
<p class="description">A smooth and responsive wireless mouse with ergonomic design.</p>
<span class="rating">4.5 stars</span>
</div>
<div class="product">
<h2 class="product-name">Bluetooth Keyboard</h2>
<span class="price">$45.99</span>
<p class="description">A compact Bluetooth keyboard with great typing experience.</p>
<span class="rating">4.7 stars</span>
</div>
</body>
</html>
এখন আমরা এই HTML থেকে প্রোডাক্টের নাম, দাম, বিবরণ, এবং রেটিং এক্সট্র্যাক্ট করবো।
JSoup ব্যবহার করে প্রোডাক্ট ডেটা স্ক্র্যাপিং কোড
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ProductScraping {
public static void main(String[] args) throws Exception {
// HTML ডকুমেন্ট
String html = "<html><head><title>Product List</title></head><body>" +
"<div class='product'>" +
"<h2 class='product-name'>Wireless Mouse</h2>" +
"<span class='price'>$25.99</span>" +
"<p class='description'>A smooth and responsive wireless mouse with ergonomic design.</p>" +
"<span class='rating'>4.5 stars</span>" +
"</div>" +
"<div class='product'>" +
"<h2 class='product-name'>Bluetooth Keyboard</h2>" +
"<span class='price'>$45.99</span>" +
"<p class='description'>A compact Bluetooth keyboard with great typing experience.</p>" +
"<span class='rating'>4.7 stars</span>" +
"</div>" +
"</body></html>";
// HTML পার্সিং
Document doc = Jsoup.parse(html);
// প্রোডাক্টের ডেটা নির্বাচন
Elements products = doc.select(".product");
// প্রতিটি প্রোডাক্টের তথ্য এক্সট্র্যাক্ট করা
for (Element product : products) {
String name = product.select(".product-name").text();
String price = product.select(".price").text();
String description = product.select(".description").text();
String rating = product.select(".rating").text();
// প্রিন্ট করা
System.out.println("Product Name: " + name);
System.out.println("Price: " + price);
System.out.println("Description: " + description);
System.out.println("Rating: " + rating);
System.out.println("--------------------------");
}
}
}
কোড ব্যাখ্যা:
- HTML ডকুমেন্ট পার্স করা:
Jsoup.parse()মেথড দিয়ে HTML ডকুমেন্ট পার্স করা হয়েছে। select()মেথড ব্যবহার:select()মেথড ব্যবহার করে.productক্লাসের মধ্যে থাকা প্রতিটি প্রোডাক্টের উপাদান (যেমন নাম, দাম, বিবরণ, রেটিং) এক্সট্র্যাক্ট করা হয়েছে।- ডেটা এক্সট্র্যাক্ট করা:
product.select(".product-name").text()এর মাধ্যমে প্রোডাক্টের নাম,product.select(".price").text()দিয়ে দাম,product.select(".description").text()দিয়ে বিবরণ এবংproduct.select(".rating").text()দিয়ে রেটিং এক্সট্র্যাক্ট করা হয়েছে।
প্রোডাক্ট ডেটা স্ক্র্যাপিংয়ের কিছু গুরুত্বপূর্ন টিপস
১. সঠিক CSS সিলেক্টর ব্যবহার
JSoup এর select() মেথডে CSS সিলেক্টর ব্যবহার করে উপাদান নির্বাচন করতে হয়। CSS সিলেক্টরের মাধ্যমে আপনি খুব সহজেই HTML ডকুমেন্টের নির্দিষ্ট ট্যাগ, ক্লাস, আইডি বা অ্যাট্রিবিউটের ভিত্তিতে ডেটা এক্সট্র্যাক্ট করতে পারেন।
২. ওয়েবসাইটের রোবটস.txt ফাইল চেক করা
স্ক্র্যাপিং করার আগে ওয়েবসাইটের robots.txt ফাইলটি চেক করুন। এটি ওয়েবসাইটের স্ক্র্যাপিং নীতি নির্দেশ করে এবং এটি লঙ্ঘন করা উচিত নয়।
৩. স্লো স্ক্র্যাপিং
আপনার স্ক্র্যাপিং কোডের মধ্যে বিলম্ব (delay) দিন যাতে ওয়েবসাইটের সার্ভারে অতিরিক্ত চাপ না পড়ে। এই কাজের জন্য Thread.sleep() ব্যবহার করা যেতে পারে।
৪. ডেটার ফরম্যাটিং
ডেটা এক্সট্র্যাক্ট করার পর সঠিক ফরম্যাটে সেটি সাজান। যেমন দাম হিসেবে সংখ্যা ও মুদ্রার সিম্বল ঠিকভাবে সেট করা।
সারাংশ
জেসুপ (JSoup) একটি শক্তিশালী Java লাইব্রেরি যা HTML ডকুমেন্ট পার্সিং এবং ওয়েব স্ক্র্যাপিংয়ের জন্য ব্যবহৃত হয়। প্রোডাক্ট ডেটা স্ক্র্যাপিংয়ের জন্য JSoup ব্যবহার করলে আপনি সহজেই HTML ডকুমেন্ট থেকে প্রোডাক্টের নাম, দাম, বিবরণ, রেটিং ইত্যাদি এক্সট্র্যাক্ট করতে পারবেন। সঠিক CSS সিলেক্টর এবং স্ক্র্যাপিং কৌশল ব্যবহার করলে ওয়েব স্ক্র্যাপিং আরও কার্যকরী এবং নির্ভরযোগ্য হতে পারে।
Read more